


project , uses("constituency_elections.dta")
project , uses("candidate_elections.dta")
		
	
	
	
**region-by-time fixed effects	
foreach v in  spending_total_adj candidates effective_candidates effective_spenders inc_vote_pct inc_spending_pct     { 

		use "constituency_elections.dta", clear //open data
		egen region_by_time = group(region date)			
		estimates clear
	
		eststo: reg   `v'   spending_limit_predicted_adj  ,  cluster(const_id) 
		estadd scalar  Observations = e(N)
		estadd scalar  Constituencies = e(N_clust)	
				
		eststo: reg   `v'   spending_limit_predicted_adj  county electors countyXelectors ,  cluster(const_id) 
		estadd scalar  Observations = e(N)	
		estadd scalar  Constituencies = e(N_clust)	
					
		eststo: reghdfe   `v'   spending_limit_predicted_adj  county  countyXelectors , a( region_by_time region_by_time#c.electors ) cluster(const_id) keepsingletons
		estadd scalar  Observations = e(N)	
		estadd scalar  Constituencies = e(N_clust)	
					
		eststo: reghdfe   `v'   spending_limit_predicted_adj   countyXelectors , a( region_by_time region_by_time#c.electors const_id ) cluster(const_id) keepsingletons
		estadd scalar  Observations = e(N)					
		estadd scalar  Constituencies = e(N_clust)	
		
		esttab  using ./tables/`v'_regionbytime.tex ///
		,  replace   keep(spending_limit_predicted_adj  ) label se nostar  nomtitles  nolines ///
		substitute("%" "\%"  "Observations" "\midrule Observations" "\hline" "\midrule" N_clust "Constituencies" "[1em]" "") noobs  nonum fragment scalar(Observations  Constituencies) b(%4.2f) sfmt(  %9.0fc  %9.0fc   ) ///
		mgroups("`: var la `v''"  , pattern(1 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) 

		project , creates("tables/`v'_regionbytime.tex")	
		
	
}
				

				
				
				
	*candidate-level difference-in-difference estimates by party
	use "candidate_elections.dta", clear //open data
	egen region_by_time_by_party = group(party region date)
	eststo clear	
	
	foreach v in spending_total_adj spending_pct vote_pct   {
		eststo: reghdfe `v' spending_limit_predicted_adj labXlimit  libXlimit otherXlimit    , a( cand_id region_by_time_by_party ) cluster(const_id) keepsingletons
		estadd scalar  Observations = e(N)	
		
		esttab  using ./tables/party_regionbytime.tex ///
		,  replace   keep( spending_limit_predicted_adj labXlimit  libXlimit otherXlimit    ) label se nostar noobs nomtitles nonumbers nolines ///
		substitute( "StDev" "St. Dev." "Observations" "\midrule Observations" "\hline" "\midrule" N_clust "Constituencies" "[1em]" "") compress  fragment scalar(Observations  ) b(%4.2f) sfmt(  %9.0fc  %9.0fc %9.2fc  ) ///
		mgroups("Spending" "\% Spending" "\% Votes" , pattern(1 1 1 ) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) 
		
	}			
	project , creates("tables/party_regionbytime.tex")	
				
	

		
	***incumbency advantage & spending limits: spending and vote shares
	use "candidate_elections.dta", clear //open data
	egen region_by_time_by_party = group(party region date)
	eststo clear
	
	eststo: reghdfe spending_pct inc  , a( cand_id region_by_time_by_party) cluster(const_id) keepsingletons
	estadd scalar  Observations = e(N)		
	eststo: reghdfe spending_pct inc incXspending_limit_predicted_adj   spending_limit_predicted_adj , a( cand_id region_by_time_by_party ) cluster(const_id)  keepsingletons
	estadd scalar  Observations = e(N)	
		
	
	eststo: reghdfe vote_pct inc  , a( cand_id region_by_time_by_party) cluster(const_id) keepsingletons
	estadd scalar  Observations = e(N)		
	eststo: reghdfe vote_pct inc incXspending_limit_predicted_adj   spending_limit_predicted_adj , a( cand_id region_by_time_by_party ) cluster(const_id)  keepsingletons
	estadd scalar  Observations = e(N)	
	
	
	esttab  using ./tables/incumbency_regionbytime.tex ///
	,  replace   keep(inc  incXspending_limit_predicted_adj   spending_limit_predicted_adj   ) label se nostar noobs nomtitles nonumbers nolines ///
	substitute( "StDev" "St. Dev." "Observations" "\midrule Observations" "\hline" "\midrule" N_clust "Constituencies" "[1em]" "") compress  fragment scalar(Observations  ) b(%4.2f) sfmt(  %9.0fc  %9.0fc %9.2fc  ) ///
	mgroups("\% Spending" "\% Votes" , pattern(1 0 1 0 0 0) prefix(\multicolumn{@span}{c}{) suffix(}) span erepeat(\cmidrule(lr){@span})) 
	project , creates("tables/incumbency_regionbytime.tex")	
	
	
	
	
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
